#ifndef NANE_SOUNDSOURCE_H
#   define  NANE_SOUNDSOURCE_H

#   include "nane/core/SubSystemProduct.h"

namespace nane 
{

    class SoundBuffer;

    class SoundSource
        : public SubSystemProduct
    {
    protected:
        class Implementation;
        friend class SoundSystem;

    public:
        SoundSource( const NullType& = NullPtr );
        SoundSource( Implementation* _impl );
        SoundSource( const SoundSource& _other );

    public:
        bool QueueBuffer( SoundBuffer& _soundBuffer );
        void Play();
        void Stop();

    private:
        Implementation* m;
    };
}   // namespace nane

#endif	// NANE_SOUNDSOURCE_H
